// var baseUrl = 'http://192.168.8.9:8189';
// var baseUrl = 'http://192.168.8.19:8281'
var baseUrl = 'http://192.168.8.223:8081'
// var baseUrl = '';

// 货币格式化
function formatMoney(number, places, symbol, thousand, decimal) {
    number = parseFloat(number) || 0;
    places = !isNaN(places = Math.abs(places)) ? places : 2;
    symbol = symbol !== undefined ? symbol : "￥";
    thousand = thousand || ",";
    decimal = decimal || ".";
    var negative = number < 0 ? "-" : "",
        i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",
        j = (j = i.length) > 3 ? j % 3 : 0;
    return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
}

// 货币转汉字
function convertCurrency(money) {
    //汉字的数字
    var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
    //基本单位
    var cnIntRadice = new Array('', '拾', '佰', '仟');
    //对应整数部分扩展单位
    var cnIntUnits = new Array('', '万', '亿', '兆');
    //对应小数部分单位
    var cnDecUnits = new Array('角', '分', '毫', '厘');
    //整数金额时后面跟的字符
    var cnInteger = '整';
    //整型完以后的单位
    var cnIntLast = '元';
    //最大处理的数字
    var maxNum = 999999999999999.9999;
    //金额整数部分
    var integerNum;
    //金额小数部分
    var decimalNum;
    //输出的中文金额字符串
    var chineseStr = '';
    //分离金额后用的数组，预定义
    var parts;
    if (money == '') { return ''; }
    money = parseFloat(money);
    if (money >= maxNum) {
        //超出最大处理数字
        return '';
    }
    if (money == 0) {
        chineseStr = cnNums[0] + cnIntLast + cnInteger;
        return chineseStr;
    }
    //转换为字符串
    money = money.toString();
    if (money.indexOf('.') == -1) {
        integerNum = money;
        decimalNum = '';
    } else {
        parts = money.split('.');
        integerNum = parts[0];
        decimalNum = parts[1].substr(0, 4);
    }
    //获取整型部分转换
    if (parseInt(integerNum, 10) > 0) {
        var zeroCount = 0;
        var IntLen = integerNum.length;
        for (var i = 0; i < IntLen; i++) {
            var n = integerNum.substr(i, 1);
            var p = IntLen - i - 1;
            var q = p / 4;
            var m = p % 4;
            if (n == '0') {
                zeroCount++;
            } else {
                if (zeroCount > 0) {
                    chineseStr += cnNums[0];
                }
                //归零
                zeroCount = 0;
                chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
            }
            if (m == 0 && zeroCount < 4) {
                chineseStr += cnIntUnits[q];
            }
        }
        chineseStr += cnIntLast;
    }
    //小数部分
    if (decimalNum != '') {
        var decLen = decimalNum.length;
        for (var i = 0; i < decLen; i++) {
            var n = decimalNum.substr(i, 1);
            if (n != '0') {
                chineseStr += cnNums[Number(n)] + cnDecUnits[i];
            }
        }
    }
    if (chineseStr == '') {
        chineseStr += cnNums[0] + cnIntLast + cnInteger;
    } else if (decimalNum == '') {
        chineseStr += cnInteger;
    }
    return 'ⓧ ' + chineseStr;
}

// 获取文件后缀并判断文件类型
function getFileType(filestr) {
    var isImg = new Array('.png', '.jpg', '.jpeg', '.bmp', '.gif'); //图片文件的后缀名
    var isDoc = new Array('.doc', '.docx'); //word文件的后缀名
    var isXls = new Array('.xls', '.xlsx'); //excel文件的后缀名
    var isPdf = new Array('.pdf'); //pdf文件的后缀名
    var ext = null;
    var name = filestr.toLowerCase();
    var i = name.lastIndexOf('.');
    if (i > -1) {
        ext = name.substring(i);
    }
    ext = ext.toLowerCase();
    for (var i of isImg) {
        if (ext == i) {
            return 'IMG';
        }
    }
    for (var i of isDoc) {
        if (ext == i) {
            return 'DOC';
        }
    }
    for (var i of isXls) {
        if (ext == i) {
            return 'XLS';
        }
    }
    for (var i of isPdf) {
        if (ext == i) {
            return 'PDF';
        }
    }
    return 'FILES';
}
// 获取路径参数
function getQuerys(name) {
    var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
    var context = '';
    if (r != null) context = r[2];
    reg = null;
    r = null;
    return context == null || context == '' || context == 'undefined' ? '' : context;
}
// 日期格式化
function timeFormat(time, type, divider) {
    if (!time) {
        return ''
    }
    var fgf = divider ? divider : '-' // 日期分割符
    var format = ''
    var times = new Date(time)
    var YY = times.getFullYear() > 9 ? times.getFullYear() : '0' + times.getFullYear()
    var MM = times.getMonth() + 1 > 9 ? (times.getMonth() + 1) : '0' + (times.getMonth() + 1)
    var DD = times.getDate() > 9 ? times.getDate() : '0' + times.getDate()
    var hh = times.getHours() > 9 ? times.getHours() : '0' + times.getHours()
    var mm = times.getMinutes() > 9 ? times.getMinutes() : '0' + times.getMinutes()
    var ss = times.getSeconds() > 9 ? times.getSeconds() : '0' + times.getSeconds()
    // yyyy-mm-dd hh:mm
    if (type == 1) {
        format = YY + fgf + MM + fgf + DD + ' ' + hh + ':' + mm
        return format
    }
    // yyyy-mm-dd hh:mm:ss
    if (type == 2) {
        format = YY + fgf + MM + fgf + DD + ' ' + hh + ':' + mm + ':' + ss
        return format
    }
    // hh:mm:ss
    if (type == 3) {
        format = hh + ':' + mm + ':' + ss
        return format
    }
    // hh:mm
    if (type == 4) {
        format = hh + ':' + mm
        return format
    }
    // yyyy-mm-dd
    format = YY + fgf + MM + fgf + DD
    return format
}

// 加载loading
function xLoading(flag, txt) {
    var loadingtxt = txt ? txt : '加载中'
    var nodes = '<div class="loding_mask"><div class="loading_box"><div class="loding_icon"><img src="../img/loading.gif" alt=""></div><div class="loging_txt">' + loadingtxt + '</div></div></div>'
    if ($('.loding_mask').length == 0) {
        $('body').append(nodes)
    }
    if (flag) {
        $('.loding_mask').fadeIn("slow")
    } else {
        $('.loding_mask').fadeOut("slow")
        setTimeout(function () {
            $(".loding_mask").remove();
        }, 100)
    }
}

// 下载文件
function publicdownFile(filename, fileurl) {
    var filestr = fileurl
    var ext = null;
    var name = filename.toLowerCase();
    var i = name.lastIndexOf('.');
    if (i > -1) {
        ext = name.substring(i);
    }
    ext = ext.toLowerCase();
    var oReq = new XMLHttpRequest();
    var URLToPDF = fileurl;
    oReq.open("GET", URLToPDF, true);
    oReq.responseType = "blob";
    oReq.onload = function (e) {
        var file = new Blob([oReq.response], {
            type: e.target.response.type,
        });
        saveAs(file, filename);
    };
    oReq.send();
}

// 电话号码校验
function PhoneValidate(phone) {
    //var myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
    // var myreg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[189])\d{8}$/;
    // return myreg.test(phone);
    if (phone.length == 11) {
        return true
    } else {
        return false
    }
}

// 银行卡号校验
//银行卡判断
function BankcardValidate(bankno) {
    bankno = bankno.replace(/ /g, '').trim(); //去掉字符串头尾空格

    var lastNum = bankno.substr(bankno.length - 1, 1); //取出最后一位（与luhm进行比较）

    var first15Num = bankno.substr(0, bankno.length - 1); //前15或18位
    var newArr = new Array();
    for (var i = first15Num.length - 1; i > -1; i--) {
        //前15或18位倒序存进数组
        newArr.push(first15Num.substr(i, 1));
    }
    var arrJiShu = new Array(); //奇数位*2的积 <9
    var arrJiShu2 = new Array(); //奇数位*2的积 >9

    var arrOuShu = new Array(); //偶数位数组
    for (var j = 0; j < newArr.length; j++) {
        if ((j + 1) % 2 == 1) {
            //奇数位
            if (parseInt(newArr[j]) * 2 < 9) arrJiShu.push(parseInt(newArr[j]) * 2);
            else arrJiShu2.push(parseInt(newArr[j]) * 2);
        } //偶数位
        else arrOuShu.push(newArr[j]);
    }

    var jishu_child1 = new Array(); //奇数位*2 >9 的分割之后的数组个位数
    var jishu_child2 = new Array(); //奇数位*2 >9 的分割之后的数组十位数
    for (var h = 0; h < arrJiShu2.length; h++) {
        jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
        jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
    }

    var sumJiShu = 0; //奇数位*2 < 9 的数组之和
    var sumOuShu = 0; //偶数位数组之和
    var sumJiShuChild1 = 0; //奇数位*2 >9 的分割之后的数组个位数之和
    var sumJiShuChild2 = 0; //奇数位*2 >9 的分割之后的数组十位数之和
    var sumTotal = 0;
    for (var m = 0; m < arrJiShu.length; m++) {
        sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
    }

    for (var n = 0; n < arrOuShu.length; n++) {
        sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
    }

    for (var p = 0; p < jishu_child1.length; p++) {
        sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
        sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
    }
    //计算总和
    sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu) + parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2);

    //计算Luhm值
    var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
    var luhm = 10 - k;

    if (lastNum == luhm) {
        return true;
    } else {
        return false;
    }
}

function IdCardValidate(idCard) {
    idCard = idCard.replace(/ /g, '').trim(); //去掉字符串头尾空格
    if (idCard.length == 15) {
        return isValidityBrithBy15IdCard(idCard); //进行15位身份证的验证
    } else if (idCard.length == 18) {
        var a_idCard = idCard.split(''); // 得到身份证数组
        if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {
            //进行18位身份证的基本验证和第18位的验证
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
/**
 * 判断身份证号码为18位时最后的验证位是否正确
 * @param a_idCard 身份证号码数组
 * @return
 */
function isTrueValidateCodeBy18IdCard(a_idCard) {
    var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]; // 加权因子
    var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2]; // 身份证验证位值.10代表X
    var sum = 0; // 声明加权求和变量
    if (a_idCard[17].toLowerCase() == 'x') {
        a_idCard[17] = 10; // 将最后位为x的验证码替换为10方便后续操作
    }
    for (var i = 0; i < 17; i++) {
        sum += Wi[i] * a_idCard[i]; // 加权求和
    }
    valCodePosition = sum % 11; // 得到验证码所位置
    if (a_idCard[17] == ValideCode[valCodePosition]) {
        return true;
    } else {
        return false;
    }
}
/**
 * 验证18位数身份证号码中的生日是否是有效生日
 * @param idCard 18位书身份证字符串
 * @return
 */
function isValidityBrithBy18IdCard(idCard18) {
    var year = idCard18.substring(6, 10);
    var month = idCard18.substring(10, 12);
    var day = idCard18.substring(12, 14);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 这里用getFullYear()获取年份，避免千年虫问题
    if (temp_date.getFullYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day)) {
        return false;
    } else {
        return true;
    }
}
/**
 * 验证15位数身份证号码中的生日是否是有效生日
 * @param idCard15 15位书身份证字符串
 * @return
 */
function isValidityBrithBy15IdCard(idCard15) {
    var year = idCard15.substring(6, 8);
    var month = idCard15.substring(8, 10);
    var day = idCard15.substring(10, 12);
    var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
    // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
    if (temp_date.getYear() != parseFloat(year) || temp_date.getMonth() != parseFloat(month) - 1 || temp_date.getDate() != parseFloat(day)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 
 * @param {*} date 时间 可以为时间戳
 * @param {*} formatter 转化的时间格式 默认为YYYY/MM/DD
 * @return 
 */
function dateFormat(date, formatter) {
    date = date ? (typeof date === "string" || typeof date === "number" ? new Date(date) : date) : new Date();
    formatter = formatter ? formatter : "YYYY/MM/DD";
    const Y = date.getFullYear() + '',
        M = date.getMonth() + 1,
        D = date.getDate(),
        H = date.getHours(),
        m = date.getMinutes(),
        s = date.getSeconds();
    return formatter.replace(/YYYY|yyyy/g, Y)
        .replace(/YY|yy/g, Y.substr(2, 2))
        .replace(/MM/g, (M < 10 ? '0' : '') + M)
        .replace(/DD/g, (D < 10 ? '0' : '') + D)
        .replace(/HH|hh/g, (H < 10 ? '0' : '') + H)
        .replace(/mm/g, (m < 10 ? '0' : '') + m)
        .replace(/ss/g, (s < 10 ? '0' : '') + s)
}
